/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package com.easoft.code.pos.ui.controllers;

import com.easoft.code.pos.data.dao.GenericDao;
import com.easoft.code.pos.data.exception.CoreDataLayerException;
import com.easoft.code.pos.data.pojos.PosUsuario;
import com.easoft.code.pos.data.util.QueryParameter;
import com.easoft.code.pos.ui.exception.SeguridadException;

/**
 *
 * @author Eliu
 */
public class SeguridadController {

    private final GenericDao dao = GenericDao.getMe();

    public PosUsuario getUsuario(String user, String clave) throws SeguridadException {
        try {
            PosUsuario u = (PosUsuario) dao.doNamedQuery("PosUsuario.findByUsuario",
                    new QueryParameter[]{
                        new QueryParameter("usuario", user)}, PosUsuario.class, true);
            if (u == null) {
                throw new SeguridadException("El usuario no existe");
            }
            if (u.getClave().equals(clave)) {
                return u;
            }
            throw new SeguridadException("La constraseña es invalida!");
        } catch (CoreDataLayerException ex) {
            throw new SeguridadException("No ha sido posible validar el usuario!");
        }
    }

    public PosUsuario getUsuarioAut(String user, String clave) throws SeguridadException {
        try {
            PosUsuario u = (PosUsuario) dao.doNamedQuery("PosUsuario.findByUsuario",
                    new QueryParameter[]{
                        new QueryParameter("usuario", user)}, PosUsuario.class, true);
            if (u == null) {
                throw new SeguridadException("El usuario no existe");
            }
            if (u.getClave().equals(clave)) {
                if (u.getAutoriza() == 1) {
                    return u;
                }
                throw new SeguridadException("El usuario no puede autorizar!");
            }
            throw new SeguridadException("La constraseña es invalida!");
        } catch (CoreDataLayerException ex) {
            throw new SeguridadException("No ha sido posible validar el usuario!");
        }
    }
}
